<?php /** @noinspection PhpPropertyOnlyWrittenInspection */
/** @noinspection PhpUnusedPrivateMethodInspection */
/** @noinspection PhpMissingFieldTypeInspection */
/** @noinspection PhpUndefinedClassInspection */
/** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */
/** @noinspection PhpMissingDocCommentInspection */
/** @noinspection PhpUnusedPrivateFieldInspection */

namespace DreamCat\PropertyAnalysis\DemoClass;

use Dreamcat\PropertyAnalysis\Annotation\ArrayDescAnno;
use DreamCat\PropertyAnalysis\DemoClass\Inner\Demo;
use Dreamcat\PropertyAnalysis\Pojo\BuildinType;

/**
 * 测试用类
 * @author vijay
 */
class Pojo1
{
    /** @var int */
    private int $field1;
    /** @var string[] */
    #[ArrayDescAnno(BuildinType::STRING, false)]
    private array $stringArray;
    private array $mixedArray;
    /** @var Demo */
    private Demo $demo;
    /** @var \DreamCat\PropertyAnalysis\DemoClass\Inner\Demo[] */
    #[ArrayDescAnno(Demo::class)]
    private array $demos;

    /** @var DemoInterface */
    private DemoInterface $demoInterface;

    private string|int $union;

    private $hasDefault = 3.4;

    private $mixed;

    #[ArrayDescAnno('Unknow')]
    private array|unk $unkownArray;

    private int $double = 5;

    private function setDouble(int $d)
    {

    }

    public static function setMixed(mixed $mixed)
    {
    }

    public function setDemos() {

    }

    public function setUnion($v1, $v2)
    {

    }

    public function setField1(int $f = null): void
    {
        $this->field1 = $f;
    }
}

# end of file
